Modern databases can store extraordinary amounts of data, often organized in a multitude of different tables. Users can define view queries on these tables that allow the users to distill certain data of interest from the database. However, depending on various factors, the view queries can be very computationally intensive and can tend to strain resources by increasing processor load, memory utilization, disk accesses, etc.
For example, some view queries are relatively complex, and may access a large number of tables. Moreover, often there are many different view queries being executed frequently by different users. The computational load caused by complex view queries and/or large numbers of view queries can be compounded by frequent database record updates, because the views generally need to be refreshed by executing the view queries when records are added, deleted, or otherwise modified.